package Day35.listTest.Test;

/**
 * @author hyhWTX
 * @version 1.0
 * @ClassName Zhan
 * @date 2022年08月05日 15:38
 * @Description: 栈的基本操作
 *
 */
import java.util.ArrayList;

class MyStack<T> {
    private ArrayList<T>arr;
    /**数组中存储元素的个数*/
    private int size;

    public MyStack(){
        //初始化栈大小
        size =0;
        arr=new ArrayList<T>();
    }

    /**判断栈是否为空*/
    boolean isEmpty(){
        return size ==0;
    }

    /**返回栈的大小*/
    int size(){
        return size;
    }

    /**取栈顶元素*/
    T top(){
        if(isEmpty()){
            return null;
        }
        return arr.get(size -1);
    }

    /**弹栈*/
    T pop(){
        if(size >0){
            return arr.get(--size);
        }else{
            System.out.println("栈为空");
            return null;
        }
    }

    /**压栈*/
    void push(T item){
        arr.add(item);
        size++;
    }
}

public class Zhan{

    public static void main(String[] args){
        MyStack<Object>stack = new MyStack<>();
        stack.push(666);
        stack.push("www");
        System.out.println("栈顶元素为："+stack.top());
        System.out.println("栈大小为："+stack.size());
        stack.pop();
        System.out.println("弹栈成功");
        stack.pop();
    }
}

